Data Binding হল একটি প্রক্রিয়া যার মাধ্যমে UI উপাদানগুলির (যেমন, টেক্সটবক্স, লেবেল, বাটন ইত্যাদি) সাথে ViewModel বা Model এর ডেটা সংযুক্ত করা হয়। এটি একটি সিস্টেম তৈরি করে যেখানে View এবং ViewModel এর মধ্যে ডেটা এবং ইন্টারঅ্যাকশন স্বয়ংক্রিয়ভাবে সিঙ্ক্রোনাইজ হয়। অর্থাৎ, একবার যখন ViewModel বা Model-এ ডেটা পরিবর্তন হয়, তখন তা স্বয়ংক্রিয়ভাবে View-এ প্রতিফলিত হয়, এবং যদি View-এ কোনো পরিবর্তন ঘটে, তা আবার ViewModel-এ প্রতিফলিত হয় (যদি এটি Two-Way Binding থাকে)।
এটি MVVM (Model-View-ViewModel) এবং অন্যান্য ডিজাইন প্যাটার্নে UI এবং লজিক এর মধ্যে স্পষ্ট বিভাজন রাখে, ফলে কোডের পুনঃব্যবহারযোগ্যতা এবং মেইনটেনেন্স অনেক সহজ হয়।
Data Binding প্রধানত তিনটি প্রকারে বিভক্ত করা যায়:
One-Way Data Binding এর মাধ্যমে ViewModel বা Model এর ডেটা শুধুমাত্র View-এ পাঠানো হয়। অর্থাৎ, ViewModel বা Model এর ডেটা যখন পরিবর্তিত হয়, তখন তা View-এ স্বয়ংক্রিয়ভাবে আপডেট হয়, কিন্তু View এর কোন পরিবর্তন ViewModel-এ রিফ্লেক্ট করে না।
এটি সাধারণত ডেটা প্রদর্শনের জন্য ব্যবহৃত হয়।
উদাহরণ:
<TextBlock Text="{Binding Name}" />
এখানে Name প্রপার্টি ViewModel-এ থাকে, এবং এটি TextBlock এর Text
প্রপার্টির সাথে বাইন্ড করা হয়েছে।
Two-Way Data Binding এর মাধ্যমে ViewModel এবং View একে অপরের সাথে ডেটা শেয়ার করে। যখন View-এ কোনো পরিবর্তন হয়, তা ViewModel-এ প্রতিফলিত হয়, এবং যখন ViewModel-এ ডেটা পরিবর্তিত হয়, তা View-এ প্রতিফলিত হয়।
এটি সাধারণত ব্যবহারকারীর ইনপুটের জন্য ব্যবহৃত হয়, যেখানে ব্যবহারকারী View-এ কোনো পরিবর্তন করলে তা ViewModel-এ সিঙ্ক্রোনাইজ হয়ে যায়।
উদাহরণ:
<TextBox Text="{Binding UserName, Mode=TwoWay}" />
এখানে UserName প্রপার্টি ViewModel-এ থাকে এবং ব্যবহারকারী TextBox-এ কিছু লিখলে তা স্বয়ংক্রিয়ভাবে ViewModel-এ আপডেট হবে।
এটি এমন একটি প্রকার যেখানে View এর ইনপুট ViewModel বা Model এ পাঠানো হয়, কিন্তু ডেটা পরিবর্তন হওয়ার পর তা View-এ আপডেট হয় না। এটি সাধারণত View থেকে ViewModel-এ ইনপুট পাঠানোর জন্য ব্যবহৃত হয়, যেমন ফর্ম সাবমিশন বা বাটনে ক্লিক করার সময়।
উদাহরণ:
<Button Command="{Binding SubmitCommand}" Content="Submit" />
এখানে, SubmitCommand ViewModel-এ থাকা একটি কমান্ড, যা Button ক্লিকের মাধ্যমে ViewModel-এ পাঠানো হয়।
Data Binding UI এবং ডেটার মধ্যে সিঙ্ক্রোনাইজেশন বজায় রাখতে সহায়ক একটি শক্তিশালী ধারণা। এটি MVVM বা অন্যান্য ডিজাইন প্যাটার্নে UI এবং লজিকের মধ্যে স্পষ্ট বিভাজন তৈরি করে এবং ডেটার অবস্থা সহজভাবে ViewModel বা Model থেকে View-এ প্রেরণ বা গ্রহণ করার সুযোগ দেয়। সঠিকভাবে ব্যবহৃত হলে এটি কোড কমাতে, ডিবাগিং সহজ করতে এবং অ্যাপ্লিকেশনের কর্মক্ষমতা উন্নত করতে সহায়ক হতে পারে।
common.read_more